home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Environments
/
PowerMacOberon feb96
/
Source
/
DummyPrinter.Mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1996-01-29
|
3KB
|
76 lines
Syntax10.Scn.Fnt
StampElems
Alloc
29 Jan 96
MODULE DummyPrinter; (* mah, jt
IMPORT
Macintosh, Sys, Printer, Directories, SYSTEM;
dpi: LONGINT; printHnd: Sys.TPrHnd; printPort: Sys.GrafPtr;
PROCEDURE GetDPI;
TYPE
XY=RECORD x, y: INTEGER END;
GetRsl=RECORD op, err: INTEGER; misc: ARRAY 7 OF INTEGER; cnt: INTEGER; res: ARRAY 27 OF XY END;
SetRsl=RECORD op, err: INTEGER; dum: LONGINT; hPrint: Sys.TPrHnd; x, y: INTEGER END;
VAR
res: XY; getRsl: GetRsl; setRsl: SetRsl; i: INTEGER;
BEGIN dpi:=0; getRsl.op:=4; Sys.PrGeneral(SYSTEM.ADR(getRsl));
IF (getRsl.err=0)&(Sys.PrError()=0) THEN i:=0;
WHILE i < getRsl.cnt DO res:=getRsl.res[i];
IF (res.x=res.y)&(res.x > dpi) THEN dpi:=res.y END;
INC(i)
END;
setRsl.hPrint:=printHnd; setRsl.x:=SHORT(dpi); setRsl.y:=SHORT(dpi); setRsl.op:=5; Sys.PrGeneral(SYSTEM.ADR(setRsl));
IF (setRsl.err#0)OR(Sys.PrError()#0) THEN dpi:=0 END
END
END GetDPI;
PROCEDURE * Open(VAR name, user: ARRAY OF CHAR; password: LONGINT);
VAR ph: Sys.TPrRealHnd; pp: Sys.TPrRealPtr; d: Directories.Directory;
BEGIN Printer.res:=1;
d := Directories.Current();
Sys.PrOpen;
IF Sys.PrError()=0 THEN Sys.PrintDefault(printHnd); GetDPI;
IF dpi#0 THEN
IF Sys.PrError()=0 THEN Printer.res:=0;
ph:=SYSTEM.VAL (Sys.TPrRealHnd, printHnd);
pp:=SYSTEM.VAL (Sys.TPrRealPtr, ph.p);
Printer.PageWidth:=SHORT(LONG(pp.right)*300 DIV dpi);
Printer.PageHeight:=SHORT(LONG(pp.bottom)*300 DIV dpi)
ELSE Sys.PrCloseDoc(printPort); Sys.PrClose END
ELSE Sys.PrClose END
ELSE Sys.PrClose END;
Directories.Change(d.path)
END Open;
PROCEDURE * Page(nofcopies: INTEGER);
END Page;
PROCEDURE * Close;
END Close;
PROCEDURE * UseListFont(VAR name: ARRAY OF CHAR);
END UseListFont;
PROCEDURE * ReplConst(x, y, w, h: INTEGER);
END ReplConst;
PROCEDURE * ContString(VAR s, fname: ARRAY OF CHAR);
END ContString;
PROCEDURE * String(x, y: INTEGER; VAR s, fname: ARRAY OF CHAR);
END String;
PROCEDURE * ReplPattern(x, y, w, h, col: INTEGER);
END ReplPattern;
PROCEDURE * Picture(x, y, w, h, mode: INTEGER; adr: LONGINT);
END Picture;
PROCEDURE * Circle(x0, y0, r: INTEGER);
END Circle;
PROCEDURE * Ellipse(x0, y0, a, b: INTEGER);
END Ellipse;
PROCEDURE * Line(x0, y0, x1, y1: INTEGER);
END Line;
PROCEDURE * Spline(x0, y0, n, open: INTEGER; VAR X, Y: ARRAY OF INTEGER);
END Spline;
PROCEDURE Install*;
BEGIN
Macintosh.prOpen:=Open; Macintosh.prClose:=Close; Macintosh.prPage:=Page;
Macintosh.prCircle:=Circle; Macintosh.prEllipse:=Ellipse; Macintosh.prLine:=Line; Macintosh.prSpline:=Spline;
Macintosh.prPicture:=Picture; Macintosh.prReplConst:=ReplConst; Macintosh.prReplPattern:=ReplPattern;
Macintosh.prString:=String; Macintosh.prContString:=ContString; Macintosh.prUseListFont:=UseListFont
END Install;
BEGIN printHnd:=Sys.NewHandle (120)
END DummyPrinter.